/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Interface;

import classes.Hospedagem;
import classes.Hospede;
import classes.Hotel;
import classes.Quarto;
import classes.Reserva;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.List;

/**
 *
 * @author tony
 */
public interface Servidor extends Remote {

    public boolean cadastrarHospede(String nome, String endereco, String telefone, String email) throws RemoteException;
    
    public boolean cadastrarHotel(String nome, String gerente, String endereco) throws RemoteException; 
    
    public boolean cadastrarQuatro(Integer idHotel, String numero, String andar) throws RemoteException; 

    public boolean cadastrarHospedagem(Integer idHospede, Integer idQuarto, Integer idHotel, String data) throws RemoteException;
    
    public Hospedagem listarHospedagem(Integer idHospedagem) throws RemoteException;
    
    public Hospede listarHospede(Integer idHospede) throws RemoteException;
    
    public Hotel listarHotel(Integer idHotel) throws RemoteException;
    
    public boolean deletarHospede(Integer idHospede) throws RemoteException;
    
    public boolean deletarHospedagem(Integer idHospedagem) throws RemoteException;
    
    public boolean deletarReserva(Integer idReserva) throws RemoteException;
    
    public Quarto listarQuarto(Integer idQuarto) throws RemoteException;
    
    public List listarHospedagens() throws RemoteException;

    public List ListarHospedagensPorHospede_naoPago(Integer id) throws RemoteException;

    public List listarHospedagensPorHospede(Integer id) throws RemoteException;
    
    public List listarHospedes() throws RemoteException;

    public List listarHospedesInadimplentes() throws RemoteException;
    
    public List listarHoteis() throws RemoteException;
    
    public List listarQuartos() throws RemoteException;    

    public List listarReservas() throws RemoteException;
    
    public Reserva listarReserva(Integer idReserva) throws RemoteException;
    
    public boolean verificarDisponibilidadeReserva(Integer idHotel, Integer idQuarto, Integer idHospede, String data) throws RemoteException;
    
    public boolean verificarInadimplencia(Integer idHospede) throws RemoteException;
    
    public boolean pagarConta(Integer idHospede, Integer idHospedagem) throws RemoteException;
    
    public boolean verificarDisponibilidadeHospedagem(Integer idHotel, Integer idQuarto, Integer idHospede) throws RemoteException;
    
    public boolean cadastrarReserva (Integer idHotel, Integer idQuarto, Integer idHospede, String data) throws RemoteException;
    
    public boolean prolongarHospedagem (Integer idHospede) throws RemoteException;
    
    public List listarQuartosPorHotel(Integer id) throws RemoteException;
}
